home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d21
/
rbcomm33.arc
/
RBCOMM.DOC
< prev
next >
Wrap
Text File
|
1991-02-02
|
97KB
|
2,306 lines
RBcomm v3.31 Copyright (c) 1989, 1990, 1991 Ralf Brown All Rights Reserved
You may redistribute this program provided that you provide unmodified
copies of all files, and do not charge any fee for making the copy.
RBcomm is a lean and mean comm program which will run in 45K without
file transfer capability or 65K with file transfer capability. Since it
is so lean, you will not get a lot of the fancy features of other comm
programs, though there are plenty of features to let you get your work
done (I've been using it exclusively for over three years, and have
added features as I've found that I could be more productive with them
than without).
Features:
small (runs in as little as 45K [65K with DSZ, 66K with Puma/MPt])
DESQview-aware
pop-up menus
seamless file transfer using DSZ, PCZ, or Puma/MPt
Zmodem and Puma/MPt autodownload (others easily added)
shell to DOS, using well under 1K while shelled
keyboard reassignment, powerful keystroke macros
20-number dialing directory
ANSI/VT102, VT52, and AVATAR level 0 terminal emulations
[UnixWindows and AVATAR level 1 partially implemented]
132-column support
supports the 16550A FIFOs
scrollback buffer
Registration:
Continued use of DSZ requires registration with Omen Technology, Inc.
See the DSZ documentation for details.
Continued use of Puma/MPt requires registration with Matthew Thomas.
See the Puma or MPt documentation for details.
If you like RBcomm, send me a picture postcard of some sight in your
area. If you don't like RBcomm, feel free to send me a postcard
anyway, telling me what you don't like. I just might change the
thing you don't like in the next release.
Support:
None (after all, I'm not getting any money for this). I will try to
fix bugs as time allows. When reporting a suspected bug, please
include as much detail as possible (such as a verbose log if it
involves the terminal emulation).
DISCLAIMER: This software is distributed AS IS and without any express
or implied warranties. The author disclaims all responsibility
for any damages which might be incurred as the result of using
or misusing* the program. Although widely used by many people,
the software is not guaranteed to function on any system other
than the author's own.
*RBcomm has the ability to overwrite or delete files, which can
result in data loss if used indiscriminately.
Ralf Brown
School of Computer Science
Carnegie Mellon University
Pittsburgh, PA 15213
ARPA: ralf@cs.cmu.edu
UUCP: {harvard,ucbvax,uunet}!cs.cmu.edu!ralf
BIT: ralf%cs.cmu.edu@cmuccvma
FIDO: Ralf Brown 1:129/3.1
Files in the RBcomm distribution archive:
RBCOMM.DOC this file
COMM.COM the RBcomm main program
RBCONFIG.COM the configuration program
MACRO.COM the keyboard macro compiler/decompiler
DVPWIDTH.COM program to set maximum width in DESQview .DVP files
R?-PIF.DVP DESQview program information files
*.MAC keyboard macro definition sources
*.RBM keyboard macro definition files
*.HLP help screens for corresponding macro files
Availability:
The newest version is always available on:
SoundingBoard 1:129/26 File Requests
(412)621-4604
24 hours, USR HST 14.4
Doctor's WOC Inn 1:129/53 File Requests
(412)881-7757
24 hours, USR HST 9600
NorthStar Pitt 1:129/81 (same computer, different modem)
(412)881-1749
1200/2400
CS.CMU.EDU [128.2.222.173]
directory /afs/cs.cmu.edu/user/ralf/pub
You must change directly to this directory due to the way our
anonymous FTP works.
New versions will also be available here within a few days of release:
Rosedale Dataline
(301)866-4554
24 hours, USR HST 9600
TP Board
Fidonet nodes participating in DVNet
WSMR-SIMTEL20.ARMY.MIL [26.2.0.4]
directory PD:<MSDOS2.MODEM>
System Requirements:
IBM PC or close compatible
at least 45K free memory (65K for file transfers)
one or more serial ports
DOS 2.0 or higher
48-128K disk space or EMS or XMS memory for swapping, depending
on configuration
-------------------------------------------------------------------------------
Installation
------------
Before you use RBcomm for the first time, you need to tell it where to find
its support files and how to talk to the modem. To do so, copy the RBcomm
files to the directory in which you wish to install them, change to that
directory, and type
RBCONFIG COMM.COM
(if COMM.COM is not in the current directory, use the full path, i.e.
C:\COMM\COMM.COM, or RBCONFIG will not be able to find it)
Please do not use your original copy. If you forget to run RBCONFIG, you
will be told to do so when you attempt to run COMM.COM.
You will now be asked (via a menu) to fill in several groups of information.
Press 'D' to set the directories and extensions to use.
RBcomm dir: where the keyboard macro files and dialing directory are stored
Swap directory: where to store the swap file when running DSZ or COMMAND.COM
a RAMdisk is ideal for storing the swap file
Use XMS if available: if set to N, RBcomm will always swap to disk in the
directory specified by the previous item. If set to Y
(default), RBcomm will swap to XMS memory if there is enough
available.
Macro file extension: default extension to apply to keyboard macro files
Default macro file: keyboard macro file to load on startup and hangup
if this file does not exist, RBcomm will use a built-in set
of default key bindings
Press 'S' to select the serial port to use. You may setup configurations
for "COM1" through "COM4", as well as the default port to use when not
otherwise indicated in the dialing directory. The values given for "COM3"
and "COM4" need not bear any relationship to the numbering of the actual
serial ports in your system (you could, for example, set them up to be the
same as "COM1" except for the length of the break signal). RBCOMM does
check that "COM1" and "COM2" exist according to the BIOS data area,
however, to avoid running in a DESQview window which has incorrect settings
for supporting serial communications. You may specify a separate setup
string for each port. The setup string needs to ensure that the modem echos
back any commands it is sent, and asserts carrier detect only while
actually connected with another modem (for Hayes-compatible "AT" command
sets, "E1&C1")
Press 'M' to define the modem setup. In this section, you need to enter
several strings to be sent to the modem. Note that you may enter a ^M
(carriage return) by pressing Alt-M (hold down the Alt key and press M), an
Esc by pressing Alt-E, and a control-H by pressing Alt-H, and a DEL (ASCII
127) by pressing Alt-D.
Press 'R' to define the modem's responses. These should be the minimum
substring that uniquely identifies the response.
Press 'P' to setup dialing parameters. You may specify the name of the
dialing directory, how long to try before declaring a time-out, how long to
wait before trying again, and the break length. Break length specifies the
length of the signal that is sent when you give the break command (default
Alt-B) in multiples of the standard clock tick of 55ms.
Press 'Z' to set the parameters for Zmodem transfers. There are three sets
of parameters for sending files with Zmodem, allowing you to tailor the
best throughput under up to three separate sets of conditions. I use the
"fast" set for BBSs, and the "medium" set for my Unix account. The "slow"
set is configured by default for a system which can't handle full
streaming. Note that PCZ will work just fine in place of DSZ if you set the
program pathname to PCZ instead of DSZ, and provide sufficient memory (PCZ
needs more memory than DSZ).
The general DSZ parameters (second item on submenu) allow replacable
parameters introduced by a percent sign. See the EXEC macro command for
details. The replacable parameters are expanded each time DSZ is invoked.
Note that the default "portx" will cause DSZ to report the port as COM9,
but it will still use the correct serial port. You need to use "portx" if
you will be using more than one serial port.
Press 'C' to set the colors you want RBcomm to use. You may select the
default and "underlined" colors, as well as the colors to use on menus.
Press 'V' to determine whether 132-column mode should be enabled, whether
to start in 132- or 80-column mode, and the register values needed to set
132-column mode. When running under DESQview, RBcomm can tell DESQview to
set the virtual screen size to 132 columns if you specify zero for AX.
DESQview will then display as much as it can at one time.
Press 'T' to adjust a number of toggles.
"Local echo" allows you to turn on half-duplex operation by default.
"Verbose" sets whether to include terminal control sequences in a log file.
"Visual bell" specifies whether to flash the screen or sound a beep when a
^G is received (internally-generated beeps always use sound).
"Check for enhanced keyboard" determines whether RBcomm will use the
enhanced keyboard BIOS calls if it thinks those calls exist. Some
systems incorrectly indicate support for those calls. Set this to
'N' if RBcomm appears to hang your system.
"Allow RBcomm to change NumLock" determines whether RBcomm will change the
state of the NumLock key when it receives the "keypad numeric mode" or
"keypad application mode" commands. Disabling the NumLock changes is
useful for laptop users without a separate number pad.
"Should backspace send delete" specifies whether the values sent by
backspace and control-backspace should be exchanged.
"Save screen" specifies whether the current screen is saved prior to
executing external programs (except for file transfers) and restored
afterwards.
Finally, press 'O' for miscellaneous options.
"Heap size" determines how much memory RBcomm allocates for the
dialing directory, macro files, and macro execution. This must be
set to at least 700 bytes more than the sum of the dialing
directory's size and the largest macro (.RBM) file's size. A
larger setting will not harm, but will needlessly use more memory.
If you get an "out of memory" or "stack full" error message, you
will need to increase this value.
"Number of screens" specifies how many virtual terminals to allocate
space for. This will become useful for the UnixWindows protocol;
most users will want to set this value to 1.
"Time between sends in idle mode" determines how often Idle mode (see
Alt-I) sends some characters to keep the connection alive when you
are not actively using RBcomm.
"String idle mode sends" specifies what characters to send to keep the
connection alive.
"Answerback message" allows you to specify the string which RBcomm will
send when it receives a ^E. The ANSWERBACK macro command can override
this setting.
"Default pace character" determines which character RBcomm will wait for
after sending each line of text from the file being typed to the
remote system. Setting this value to ^@ means that RBcomm will not
pause after each line. This setting may be changed while RBcomm is
running by using the PACECHAR macro command.
"Use EMS for scrollback" determines whether RBcomm will allocate 32K
of expanded memory (if available) for the pager and scrollback
buffers. If set to Y and at least 32K of EMS is available, RBcomm
will give you an 6K pager buffer and 26K scrollback buffer regardless
of the next two settings.
"Size of non-EMS pager buffer" determines how much memory RBcomm will
allocate for the file pager's buffer when EMS is not available or
has been disabled. Larger values can improve the pager's performance
on files with long lines, but values greater than 6-8K will not have
much of an effect unless you have an extremely large screen. Note
that setting this value to zero will disable not only the file pager,
but the directory lister and scrollback display as well, since all
three use the pager. If the size of the pager buffer is less than
the number of characters on the screen in the current mode, the
directory lister will be unavailable.
"Size of non-EMS scrollback buffer" determines how much memory RBcomm
will set aside for storing text received from the serial port. As
new text comes in, the oldest will be discarded. Whatever text is
in the scrollback buffer may be viewed with Alt-O.
On choosing "Quit" from the menu, you will be asked whether to save the
new configuration to disk. If you specify that you want to save the changes,
the executable on disk will be updated.
---------------------
DESQview Installation
---------------------
After performing the file copy and configuration described in the previous
section, you need to install RBcomm on the DESQview Open Window menu. In
DESQview, tap the Alt key to bring up the DESQview menu, then press "O" for
the Open Window menu, and "AP" to add a program. Select "Other", then fill
in the directory in which you've placed the RBcomm files and press Enter.
You will be given the choice of RBcomm, RBcomm plus DSZ, and RBcomm 132col;
select one or more and press Enter. Now use "CP" from the Open Window menu
to change the paths and/or the keys for starting RBcomm.
The only difference between "RBcomm" and "RBcomm + DSZ" is that the former
allocates the minimum amount of memory for RBcomm to run (45K), which is
not enough to invoke DSZ, but does save 20K when you do not need file
transfer capability. If your environment is particularly large, you may
need to use Change a Program to increase the window sizes by a K or two.
With certain screen sizes, you may also need to give RBcomm 1K of system
memory (on the advanced options screen).
To get a 132-column display under DESQview, configure RBcomm to use
132-column mode and then make a .DVP file using "Change a Program" which
has all fields except for "maximum width" set to the desired values.
Change a Program only allows 127 columns in the window, so choose an
arbitrary size smaller than that. After pressing Enter to save the .DVP,
run the included DVPWIDTH program to change the maximum width to 132
columns, i.e.
DVPWIDTH 132 RZ-PIF.DVP
You must give the full name of the .DVP file, including the extension.
Note that Change a Program will force you to change the window's width
if you have set the width greater than 127 and run Change a Program again.
If you do not wish to use the DVPWIDTH program, RBcomm can still use
132-column windows, but you must give it enough "system memory" to store
the entire maximum-size screen. Whatever memory is used to store the
initial screen size set under "Window Position" is then wasted, so that
size should be set fairly small (such as 20 columns by the desired number
of rows). If you are not interested in the reason, skip the rest of this
paragraph. DV normally reuses the same section of memory when resizing the
virtual screen. However, resizing it beyond the maximum defined by the
.DVP causes an entire new buffer to be allocated. Thus, minimizing the
"maximum screen size" also minimizes the DESQview overhead by reducing the
size of the screen buffer which gets discarded.
RBcomm is sufficiently DESQview-aware to ask DV for the size of the screen.
If you want a 120x60 screen, just set the maximum window size to 120
columns and 60 rows. DESQview will display as much as it can on your
screen, but RBcomm will use the full size. If you have enabled 132-column
mode with RBCONFIG, RBcomm will also switch to 132 columns by the given
number of rows when it receives the sequence "<Esc>[?3h".
RBcomm refuses to load itself twice on the same serial port when running
under DESQview. However, when shelled to DOS, you can load another copy in
a different window, but make sure to exit the second copy before returning
from the DOS shell, or the first copy will abort.
Finally, RBcomm returns the rest of its time-slice to DV if it doesn't need
a full slice. This improves the performance of programs in other windows.
-----------------------------------------------------------------------------
Dialing Directory
-----------------
The dialing directory is a plain text file, containing up to twenty entries
(any additional entries will be ignored). Each entry consists of two
lines, looking like this, with no blank lines between entries:
Doctor's WOC Inn
14128817757|4800N81|B|OPUS|password|\\N2
The first line contains the description which will be used in the dialing
directory and when dialing. The second line contains six fields separated
by vertical bars. These fields are
1. number to dial (direct connection if empty)
2. modem parameters, containing in order
baud rate (110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400,
57600)
parity (N for none, E for even, O for odd, S for space,
M for mark)
data bits (5, 6, 7 or 8)
stop bits (1 or 2)
handshake to use when receive buffer is full
(H for hardware RTS/CTS, X for software XON/XOFF)
(optional, default is hardware)
timed call flag
(if handshake present and the character after the handshake
is T, a short "bip" will sound about 50 seconds into each
minute after establishing a connection. Every five
minutes, the "bip" sounds twice)
serial port number
(if handshake is present, following either the handshake
character or the "T" timed call flag with a comma and
the number of the serial port will tell RBcomm to switch
to that port before dialing)
3. terminal emulation
A for ANSI with VT102 extensions
B for ANSI-BBS (same as ANSI, but clearing screen also homes cursor,
character set switching is disabled, and the AVATAR
level 0 command set replaces two RBcomm private
commands)
V for VT52 with H19 extensions
4. keyboard macro file to load
5. password for this system (used by PASSWORD macro command). Display of
passwords in the dialing directory may be turned on or off with
RBCONFIG.
6. optional modem setup string, minus command lead-in defined by RBCONFIG
(may include vertical bars). In the example above, the \\N2 tells
my modem to use MNP error correction.
If the keyboard macro file field is non-empty, the specified file will be
loaded immediately upon successfully connecting with the remote system.
Since each entry in the dialing directory can specify an independent set of
keyboard macros, you can have a different set of keyboard bindings for each
system. If the macro file specifies a binding for the ONLOAD "key", that
macro will be executed immediately. Further, if the macro file specifies a
binding for the AUTO "key", that macro will be executed immediately after
the ONLOAD macro (if any).
The setup string may contain the following special sequences:
~ pause for half a second
\n send a line feed
\r send a carriage return
\f send a form feed
\t send a horizontal tab
\a send a ^G
\b send a backspace
\! send a break
\~ send a tilde
\\ send a backslash
Example modem parameters:
1200E71X default COM port, 1200 bps, even parity, seven data
bits, one stop bit, use Xon/Xoff handshake when
receive buffer fills up
19200N81HT,2 COM2, 19,200 bps, no parity, eight data bits, one
stop bit, use hardware handshake, and sound off
every minute
-----------------------------------------------------------------------------
Environment Variables
---------------------
RBcomm uses the following variables in its environment:
COMSPEC specifies which program to load for Shell-to-DOS (Alt-D) and
Execute-Program (Alt-G).
RBCOMM specifies default commandline options (which may be overridden by
the commandline). See below for the valid options. Note that only
the first 160 bytes will be used due to internal limitations.
SWAPDIR overrides the default swap directory, where RBcomm stores itself
when swapping to disk.
-----------------------------------------------------------------------------
Commandline Options
-------------------
RBcomm may be invoked with one or more options, described below. These
options are processed from left to right; if an option is present
multiple times, the rightmost instance will be the one in effect. The
options in the RBCOMM environment variable (if present) are processed
before the commandline, and thus are overridden by the commandline.
Options are not case-sensitive.
-Cn select COMn, where 'n' may be 1 to 4. This option overrides
the default set with RBCONFIG.
-Ddir set the RBcomm directory to 'dir'. This option overrides
the RBCONFIG default.
-Mfile set the default macro file to use whenever not connected
to a remote system. This option overrides the RBCONFIG
default. Only the first 8 characters are used.
-Nfile set the RBcomm dialing directory to 'file'. This option
overrides the RBCONFIG default; it replaces the RBCDIAL
environment variable used by the prior release. Only the
first 12 characters are used; if no extension is given,
it defaults to .DIR.
-Pparm force default parameters for the current default port. Instead
of reading the port's parameters, RBcomm will set them to
the value specified here. 'parm' is in the same format as
used in the dialing directory, except that the port number is
not allowed. You may intersperse -C and -P options to set
forced parameters for more than one port.
numlst a list of numbers to dial as if typed at the Alt-Q (see
below) prompt
-----------------------------------------------------------------------------
Memory Requirements
-------------------
RBcomm's memory usage is approximately
38K + heap size + screens + pager buffer + scrollback buffer
where
screens = number_of_screens * (max_size + 352)
max_size = greater of (2*rows*columns) for 80 and 132-column modes
pager buffer and scrollback buffer are both 0 if allocated in EMS
If there is insufficient memory, the scrollback buffer is shrunk; if there
is still not enough memory, the pager buffer is shrunk as well.
-----------------------------------------------------------------------------
Keyboard Commands
-----------------
The commands described here may be bound to other keys, but the default
keystroke named here may always be used when preceded by Alt-= (hold down
the Alt key and press the equal sign at the upper right of the typewriter
section of the keyboard).
Alt-A attack dial
Repeatedly dials the number you select from the dialing directory
until a connection is established. You may also manually enter a
number to attack-dial.
Alt-B send break
Alt-C call a number
Dial the number you select from the dialing directory (once only).
You may also manually enter a number to dial. If you are currently
connected to another system, you will be prompted whether to hang
up. Press Esc to abort the dial and return to the current session.
Press "Y" to disconnect and then dial a new number, or "N" to maintain
the current connection and load new macros and parameters without
dialing.
Note that the modem parameters always have an "H" appended when neither
"H" nor "X" is present in the dialing directory, since the handshake
defaults to hardware.
Alt-D DOS shell
Temporarily exit to DOS. Type "EXIT" to return to comm session.
RBcomm will swap itself out of memory, leaving only 448 bytes plus
its copy of the environment in memory (464 bytes when swapping to
EMS). When swapping to disk, a 48K-96K swap file will be created
in the directory you specified with RBCONFIG, and will be deleted
when you return to the comm session. File transfers also create
the temporary swap file.
Alt-E toggle local echo
By default, RBcomm assumes that the remote system will echo any
characters you need to see. After pressing Alt-E once, RBcomm will
display any characters you type without requiring the remote system
to echo them. After pressing Alt-E a second time, RBcomm will once
again assume that the remote system will echo characters.
Note: you may also toggle local echo by pressing 'L' on the Alt-P
parameters menu.
Alt-F list files
Display a three-up listing of the files matching a given
filespec. This command uses the pager, whose commands are
listed in a separate section below. Note that the pager can not
back up past the beginning of its buffer; for large directories,
this means that it may display "Top" even though you are not
at the beginning of the directory listing. Press Home to get
back to the beginning if this occurs.
Alt-G Go execute a program
You will be prompted to enter a command. Everything up to the first
blank is the program to execute, and the rest of the line is the
command tail to pass to the program. If you do not specify an explicit
path, RBcomm will search your PATH for you; similarly, if you do not
give an explicit extension, RBcomm will look for both .COM and .EXE
files.
(to execute a batch file or a COMMAND.COM internal command, you should
use
"%VCOMSPEC% /c cmd"
as the implicit COMMAND.COM invocation from earlier releases has been
removed)
Alt-H hang up
Terminate the connection. First drops DTR, and if Carrier Detect is
still active, sends the modem's hangup string. The default macro set
is reloaded from disk (if present) or from the built-in defaults.
If the CLEANUP "key" has a macro binding, it is executed before
hanging up; if it includes the LOWER_DTR command, DTR will remain
dropped.
Alt-I idle
This command allows you to keep a connection alive if you need to step
away from your computer for a while. Sends a space followed by a
backspace every two minutes (configurable with RBCONFIG) until you
press a key to cancel the command.
Alt-J jump to directory
Pops up a window displaying the current directory. You may switch to
a different directory by entering it in place of the displayed
directory. Relative paths without a leading slash or backslash will
change to a subdirectory of the current directory. If you specify a
drive letter, that drive will become the current drive as well.
Alt-K unused
Alt-L toggle logging to file
When pressed the first time, you will be asked for the name of a file
to which all characters received from the remote system will be
appended (percent signs introduce variable expansions--see the EXEC
and OPEN_LOG commands below). When pressed the second time, RBcomm
will no longer append received characters to that file. If verbose
(see Alt-Y) is active, all characters will be appended exactly as
received, otherwise any command sequences embedded in the received
data are stripped out.
Alt-M learn macro
When you press Alt-M, you will be asked which key you want to assign
the macro to. You may then enter a text string of up to 78 characters
(if a TEXT macro is already assigned to the key, the current value
becomes the default value in the input line), using the same editing
keys used elsewhere.
Alt-N unused
Alt-O scrOllback
(formerly send file with slowed-down Zmodem; use Alt-S, S)
This command pops up the scrollback pager, allowing you to review
text which has already scrolled off the screen. The keystrokes
which the pager understands are listed in a separate section below.
Alt-P set parameters
This command pops up a menu which allows you to set the following
parameters: COM port, speed, parity, parity stripping, handshake,
backspace translation, visual bell, and terminal emulation. You may
also reset the terminal emulation to its initial state, in case the
remote system leaves you stranded in a strange condition. Press Esc,
Enter, or 'R' to exit this menu.
Note that Alt-P will discard any characters which have been received
but not yet processed, because it always reinitializes the serial
port when it pops down.
Alt-Q dial queue of numbers
Repeatedly dials each number you specify until a connection is
established with one of the numbers. The numbers are dialed in
round-robin fashion until a connection is established. A beep will
sound to notify you of the connection, and the name of the remote
system and the modem's connect response will be displayed.
You specify the numbers to dial by giving the digit or letter as it
appears in the dialing directory (case is ignored on letters). A
number may be specified more than once, and will be dialed more than
once during a round of dialing attempts. As a shortcut, specifying
an asterisk ('*') instead of a list of numbers will dial all numbers
in the dialing directory in order.
Alt-R receive file
Pops up a menu allowing you to select the protocol with which you wish
to receive a file from a remote system. Press ESCape if you do not
wish to receive a file. Note that Zmodem features automatic download,
so you do not need to press Alt-R unless you wish to give DSZ
additional parameters. You may also add additional autodownloading
protocols--see the WHEN macro command in the next section.
Not listed on the menu: ^G, ^Y, and ^Z pop up a parameter prompt,
then proceed with the download specified by the corresponding
non-control letter.
Alt-S send file
Pops up a menu allowing you to select the protocol with which you wish
to send a file to a remote system. Press ESCape if you do not wish to
send a file. After selecting a protocol, you will be asked to enter
the name of the file to send (Ymodem, Ymodem-G, and Zmodem allow
wildcards and multiple filespecs).
If you press the control character corresponding to the desired
protocol, the file(s) will be deleted after a successful transfer.
For batch transfers, only the files corresponding to the first
filespec are deleted.
Also unlisted on the menu: pressing 'R' (or ^R) will send with
Zmodem using the "medium" parameters and pressing 'S' (or ^S) will
send the file with Zmodem using the "slow" Zmodem parameters installed
by RBCONFIG.
Alt-T type ASCII file to other system
sends an ASCII file to the remote system, pausing after each line
for the return to be echoed. The send may be aborted at any time
by pressing Escape.
Alt-U load/save user interface as defined in keyboard macro file
Note that keyboard macro files are always stored in the RBcomm
directory as defined by RBCONFIG.
WORDSTAR.RBM and EMACS.RBM contain the keyboard definitions for using
WordStar (tm) and Emacs cursor movement commands on the cursor pad
(i.e. Home goes to the start of the line, etc.) EMACS.RBM also binds
all Alt-letter keys to be Esc-letter, making the Alt key into a true
Emacs meta-key. You will need to use the Alt-= override to use the
RBcomm commands while EMACS.RBM is loaded.
Alt-V View file
(toggle verbose, which used to be on Alt-V, is now on Alt-Y)
Page through a text file. This uses a simple file lister which
only understands a few keystrokes; they are listed in a separate
section below.
Alt-W select Which screen is visible
Displays a menu of the available screens. Press the indicated
number to make that screen the visible screen. If UnixWindows
is not enabled, the selected screen will also be made the
active screen (characters received from the serial port are
displayed on the active screen). Under UnixWindows, the
visible and active screens may be different, as the active
screen is set by commands from the remote system; thus, only
the visible screen is set by this command.
Alt-X exit
Terminate RBcomm. If you are still connected to the remote system
(Carrier Detect asserted), you will be asked whether or not to hang
up.
Alt-Y toggle verbose
(previously Alt-V)
Toggles the verbose mode used with Alt-L. When not logging, the
control characters which are not used for terminal commands will be
displayed as ^X when received from the remote system. When logging to
a file, terminal command sequences will only be stored in the log file
if verbose mode is ON.
Alt-Z send file with Zmodem
This command will send the specified file(s) with the "medium" Zmodem
parameters installed by RBCONFIG.
Alt-1,2,3,4,5,6,7,8,9,0 dial first ten numbers in dialing directory
Alt-F1 through Alt-F10 dial 11th through 20th number in dialing directory
F1 pop up help screen
Displays the contents of the help file for the current macro file
(if that file is not found, RBcomm attempts to use RBCOMM.HLP).
Press an Alt or function key to execute the default binding for the
key. Escape exits immediately, and any other key pages through the
help file (if more than 20 lines long).
Alt-- cancel any pending WHEN, DELAYED, or WINDOW commands
Alt-= use default binding of next keystroke
If the keyboard has been redefined, pressing Alt-= will allow you to
access the built-in default definitions (as listed in this section).
Press Alt-= and then immediately press the key whose default
definition you want to use. As a result, Alt-= is the only keystroke
which may not be redefined.
-----------------------------------------------------------------------------
Line Editor
-----------
Whenever you are prompted for a line of input, you may use the following
keys to edit the line:
Esc abort
Return finish input
Home move to start of line
^A move to start of line
End move to end of line
Right move a character right
^D move a character right
Left move a character left
^S move a character left
^Right move word right (to next blank)
^Left move word left (to previous blank)
Del delete the character under the cursor and shift remainder of
line left
Backsp delete the character to the left of the cursor, and shift the
remainder of the line left
Alt-G delete the word to the right of the cursor
Alt-H delete the word to the left of the cursor
^End delete from the cursor to the end of the line
^T transpose the two characters to the left of the cursor
Alt-D insert an ASCII DEL (127) character
Alt-P insert the contents of the cut buffer
^Q treat the next keystroke as a literal character to insert
-----------------------------------------------------------------------------
Pager
-----
The pager is used to display directories, files, help screens, and the
scrollback buffer. It is fairly simple, supporting the following
keystrokes:
Up move up one line
Down move down one line
PgUp move up one screenfull
PgDn move down one screenfull
Space move down one screenfull, exiting if already at end of
file/directory/buffer.
Right (files only) shift the left margin right by eight spaces,
allowing you to view lines extending past the right
edge of the screen. When the left margin is other than
zero, the indent is shown at the right edge of the status
line.
Left (files only) shift the left margin left by eight spaces if
it is not already zero.
Home restart the pager. For files and directories, you will
be put back at the beginning of the file; for the scroll-
back buffer, you will be placed at the end of the buffer.
Esc exit from the pager.
-----------------------------------------------------------------------------
Error Messages
--------------
file not found
RBcomm was unable to open the requested file. This may be due to
wildcards or a misspelling in the filename, an invalid path,
a lack of file handles (see FILES= in your DOS manual), or a file
sharing conflict.
Function not available
you attempted to use the file browser, directory lister, or
scrollback pager when there was no pager buffer allocated (either
through RBCONFIG or lack of memory), or the pager buffer was too
small for the directory lister.
invalid macro file
the macro file you wanted to load is either corrupted or from an
older version of RBcomm which used an incompatible format for macro
files. Try recompiling the macro file.
MODEM NOT RESPONDING
RBcomm did not get an acknowledgement from the modem within four
seconds of the last command. If you only get this message on attack
or list dialing, you need to increase the delay before redialing
with RBCONFIG (under "dialing parameters")--some modems take longer
to reset after a hangup command than others.
--out of memory--
There was not enough memory to pop up the requested menu or prompt.
Increase the heap size with RBCONFIG and try again.
STACK FULL
Your macro was so deeply nested that it ran out of space. This can
be caused by an infinite recursion in your macro. Increase the heap
size with RBCONFIG (under "Other options") and try again.
-----------------------------------------------------------------------------
Warnings
--------
Don't try to load a TSR while shelled to DOS. RBcomm won't be able to swap
itself back in and will have to abort. Your connection will not be broken,
however.
Don't mess with the swap file while shelled. You'll be sorry.... (RBcomm
is able to detect a missing or truncated swap file on returning, but not
other changes)
IMPORTANT: if you are swapping to a floppy drive, DO NOT UNDER ANY
CIRCUMSTANCES replace that floppy disk while shelled to DOS or running a
file transfer. You will definitely trash the file allocation tables and
directory of the second disk. This is a problem with DOS itself (at least
through 3.10, later versions may have corrected it) when faced with a
diskette change while a file is open on the diskette which gets removed.
The swap file is such an open file.
-----------------------------------------------------------------------------
Known Bugs and Limitations
--------------------------
If you are using a serial port which the BIOS does not recognize, RBcomm
will most likely read garbage parameters from the port at startup, requiring
you to set the parameters by hand with Alt-P or the -P commandline option.
The pager has trouble with extremely long lines (>500 columns or so).
When encountering such a line, you may not be able to move up or down by
single lines. PgUp and PgDn will still work, however.
RBcomm requires that the EMS page frame contain at least three pages
in order to use EMS for the scrollback and pager buffers, and at least
one page in order to swap to EMS. This is important when running under
memory managers such as QEMM-386 which allow page frames smaller than
the standard four pages.
-----------------------------------------------------------------------------
Macro Compiler
--------------
Syntax: MACRO {t|m} infile outfile
where 't' specifies compilation from text file to keyboard macro file
and 'm' specifies decompilation from macro file to text file
default extensions are .MAC for text files and .RBM for macro files
Important Note:
RBcomm v3.1 and later macro files are COMPLETELY INCOMPATIBLE
with earlier versions. You must recompile all your macro files.
If RBcomm doesn't complain, you don't need to recompile.
-------------------
Macro File Commands
-------------------
Each command has the following form:
keyname commandword [args]
where keyname specifies to which key the command is to be bound. Keynames
(which are not case-sensitive) are:
F1 through F12 for the function keys
+F1 through +F12 for the shifted function keys
^F1 through ^F12 for the control function keys
@F1 through @F12 for the alt-function keys
@A through @Z for the alt-letter keys
@1 through @0 for the alt-digits
Gray+, Gray-, Gray*, Gray/ for plus, minus, star, slash keys on keypad
@Plus and @Minus, @Gr*, @Gr/ for Alt-Gray+, Alt-Gray-, Alt-Gray* and
Alt-Gray/
Left, Right, Up, Down for the cursor keys on the numeric pad
Home, End, PgUp, PgDn, Ins, and Del for the other keypad keys
KP5 for the '5' key on the number pad (enhanced keyboard)
^Home, etc. for the control versions of the numberpad keys
CP_Home Home key on gray cursor pad
CP_Up Up arrow on gray cursor pad
CP_Down Down arrow on gray cursor pad
CP_Enter Enter key on cursor pad
etc.
@Left, @Right, @Up, @Down, @Home, @End, @PgUp, @PgDn, @Ins, @Del for
Alt- versions of the cursor pad keys
^Left, ^Right, etc for Ctrl- versions of the cursor pad keys
^Break for control-break
@- @= @[ @\ @] @; @' @, @. @/ @` @* for various other Alt-keys
There are also some pseudo-keys to which you may assign a macro:
"OnLoad" is executed any time the macro file is loaded into memory
"Auto" is executed automatically when a connection is established
"Reconnect" is executed automatically when reconnecting without
hanging up and redialing
"CleanUp" is executed when hanging up if carrier detect is active
"OnAbort" is executed whenever a macro other than OnAbort aborts and
displays the **ABORTED** message, just prior to displaying
the message
And there is a no-operation pseudo-key for use by FORCE_CLEANUP:
"Null" does nothing and returns immediately
You may assign macros to control keys by specifying "^x" as the key name,
where "x" is the control key you want to use. Similarly, you may assign a
macro to a regular key by preceding the character representing the key by a
backslash (i.e. \A for capital 'A', \a for lowercase 'a'). Note that macros
are never in effect when you are prompted for information by RBcomm; they
only affect what (if anything) gets sent to the remote system.
Finally, you may use "#nnn" where nnn is the decimal scancode of the key
you wish to assign the macro to (values of 200 through 255 are reserved,
167 through 199 are currently unused by any key combinations supported by
the BIOS).
Note that the cursor pad keys will execute the binding for the
corresponding number pad key if not specifically bound (but not vice
versa). CP_Enter defaults to the binding for @Enter.
The commandword is not case-sensitive, but you must include the underscore
if present and use the entire commandword (abbreviations are not
supported).
With the exception of the ANSWERBACK, TEST, TEXT, WAITFOR, and WHEN
commands, all commands which take a string argument pop up a prompt if the
string is empty (i.e. ""). Strings may include the following special
sequences:
^x specified control character
^? ASCII DEL (127)
\a ^G (bell)
\b backspace
\e escape
\f form feed
\n line feed
\r carriage return
\t horizontal tab
\v vertical tab
\\ backslash
\^ carat
\0 ASCII NUL (for TEXT command only)
For character arguments, you may specify either
'c'
where the character c is interpreted as for a string, or you may specify its
ASCII value.
Everything from a semicolon (unless it is in a string) to the end of the line
is considered a comment, as are blank lines.
If a line starts with #include rather than a key name, the specified file
will be compiled into the macro file as if it were part of the current text
file. Note that the string is processed just like any other strings, so
that you must double any backslashes (or use forward slashes, instead).
Format:
#INCLUDE "d:/path/filename"
an extension of .MAC is assumed if no extension is given, and the drive
letter and path are optional (default is current drive and directory).
#INCLUDEs may be nested up to twelve deep.
If a line starts with #ignore rather than a key name, any subsequent
occurrences of the keyname following the #ignore will be ignored, just as
if you had already defined a binding for the key. This is useful when
#include'ing a file if you do not want all the bindings in the included
file.
Format:
#IGNORE <keyname>
For readability, you may give names to extended keys with the
#DEFKEY <newname> <keynumber>
command. User names will be lost on decompiling the macro file, however.
For example, "#defkey Proc1 199" will let you refer to "Proc1" and "#199"
interchangeably.
ABORT
abort the current macro or operation as if the user had pressed Esc.
ABORT_UNTIL
Abort any currently executing UNTIL command after the command(s) it
controls complete. If multiple UNTIL commands are nested, each is
aborted as the commands it controls complete, until all pending
UNTILs have been aborted. Useful mainly in conjunction with the
DELAYED command to provide a timeout on UNTIL loops.
See also DELAYED, UNTIL.
ANSWERBACK "string"
sets the answerback message to the specified string. If the string is
empty (i.e. ""), answerback is disabled (making ^E a cursor-positioning
command), otherwise, answerback is enabled.
AT hh:mm:ss
execute the following line (or lines if a MULTI) at the specified
time. If the specified time is less than the current time, the
command(s) will be executed the next day. The seconds may be
omitted, in which case they default to 0.
Note: the command(s) may actually execute later than requested if
RBcomm is busy processing incoming characters at the time the
command should execute. The command will execute as soon as RBcomm
empties its receive buffer.
See also DELAYED.
AUTO_XFER
reenable Zmodem and Puma autodownloads if they have been canceled by
an ENDWHEN. This is functionally equivalent to
WHEN 0 "**^XB00"
RECEIVE 'Z'
WHEN 0 "^X^H^XPuma^X^H^X"
RECEIVE 'P'
The autodownloads are also reenabled when hanging up, dialing, or
loading a new macro file.
WARNING: do not invoke while autodownload is enabled, as you will wind
up invoking a download multiple times for one download request....
See also ENDWHEN, WHEN.
AUTO_ZMODEM
(renamed to AUTO_XFER) The macro compiler still accepts this
command, but issues a warning. This command will be completely
removed in the next release.
AWAITKEY
pause until a key is pressed. The next function which reads a key
will read the key which was pressed. Returns immediately if there
was any typeahead (including RBcomm's key stack).
See also KFLUSH.
BEEP
sound the bell. Useful mainly in conjunction with the MULTI or
DELAYED commands (see below).
BREAK
send a break to the remote system
CALL keyname
execute the macro (if any) bound to the specified key and then continue
executing the current macro (if inside a MULTI).
See also GOTO_KEY, PUSHKEY.
CANCEL_DELAYED which
cancel the specified delayed action. Currently supported:
ALL cancel all delayed actions
LAST cancel the last executed DELAYED. If called a second
time without an intervening DELAYED, the second call
is ignored.
See also DELAYED.
CANCEL_NOTIFY
remove the notify window immediately instead of at the end of the
configured period of time.
CHDIR "dir"
change the DOS default directory to the specified directory.
CLOSE_LOG
close the current log file. If logging is off, this command has no
effect.
See also OPEN_LOG, TOGGLE_LOG.
CUT num dir "search"
search the screen backwards from the current cursor position until
the search string (case sensitive) is found, then copy "num"
characters in the indicated direction (AFTER or BEFORE) to the cut
buffer. The contents of the cut buffer remain unchanged if the search
string is not found (in which case the completion status is set to
FAILED for testing by IF or UNTIL). The cut buffer may be sent to
the remote system with the PASTE command, inserted into a line
being edited by pressing Alt-P, or inserted with the %C variable
expansion.
Note that trailing blanks are deleted from the cut buffer. In
addition, the CUT command treats the entire screen (even if a WINDOW
command was used to restrict output to a portion of the screen) as a
single long line, ignoring all line wrapping for both search and cut.
Examples:
Screen contains "1234test5678cursor here->" and the cursor is as
indicated. Then
CUT 3 BEFORE "test"
places "234" into the cut buffer, while
CUT 6 AFTER "test"
places "5678cu" into the cut buffer. Further,
CUT 7 BEFORE ""
will place " here->" into the cut buffer.
See also PASTE.
DELAYED time
execute the macro on the next line (or lines if it is a MULTI) the
given amount of time from now. You may have up to six delayed
commands active at any given time. The maximum delay time is 18
hours; the macro compiler will complain if you attempt to use a
greater delay. Times are specified as
seconds
minutes:seconds
or hours:minutes:seconds
Note: the command may actually execute later than requested if RBcomm
is busy processing incoming characters at the time the command should
execute. The command will execute as soon as RBcomm empties its
receive buffer.
See also CANCEL_DELAYED, WHEN.
DIAL number redial
dial the specified entry (0-19) from the dialing directory, or pop up
the dialing directory if 'number' is PROMPT. 'redial' specifies how
to dial:
ONCE make only one attempt
ATTACK try repeatedly until connected
RECONNECT make a single attempt if not connected, or set
parameters and password without dialing if already
connected
See also LISTDIAL, MDIAL.
DISPLAY "msg"
Display the given string at the current cursor position, and update
the cursor position to be at the end of the string. This is similar
to the MESSAGE command, but always it always displays at the current
position; MESSAGE also does not change the cursor position. The
characters ^A through ^F in the string invoke special actions. ^C
clears from the current position to the end of the line; the other
special characters are detailed under "Writing your own Help FIles".
See also MESSAGE.
ECHO ON|OFF
ECHO ON forces half-duplex (local echo on) mode, ECHO OFF forces
full-duplex (local echo off).
(see Alt-E)
See also TOGGLE_ECHO.
ENDWHEN which
cancel the specified WHEN command. Currently supported:
ALL cancel all WHENs except the Zmodem and Puma
autodownloads
ALL_XFER cancel all WHENs including the autodownloads
LAST cancel the last executed WHEN. A second call without
an intervening WHEN acts the same as ENDWHEN ALL.
See also AUTO_XFER, WHEN.
EXEC "command-to-execute"
everything up to the first blank in the string specifies the program to
execute (the PATH will be searched if no explicit path is given, and
both .COM and .EXE will be looked for if there is no explicit
extension), the remainder of the string is the command tail to pass to
the program. Note that a following IF command will always consider
the EXEC to have succeeded if you use COMMAND.COM to run the program
with the construct
"%VCOMSPEC% /c cmd"
due to a misfeature of COMMAND.COM.
If SAVE_SCREEN is ON, RBcomm will prompt for a key, then restore
the screen to the state it was in before the EXEC. No message will
be displayed if the program returns an error; however, an error
message will still be displayed if there was an error while attempting
to load the program.
Within the command, a percent sign introduces a variable substitution.
The following sequences are supported:
%a hexadecimal I/O base address being used
%C contents of the cut buffer (see CUT and PASTE)
%d current date, in format mm-dd-yy
%D current directory, including drive
%i IRQ number being used (0-15)
%I get input from user. The following characters up to the next
percent sign are used as the prompt and then discarded.
%M current macro file name
%N name of current remote system (from dialing directory)
%p port number (1-4)
%P port parameters, in same format as dialing directory
display
%s current serial port speed
%t current time, in format hh:mm:ss
%V get an environment variable. The following characters up to
the next percent sign are used as the name of the variable
and then discarded.
%w current switch character
%% a percent sign
See also EXECN, IF, SHELL.
EXECN "command-to-execute"
This command is identical to EXEC, except that no error box is
displayed in the event of an error. If SAVE_SCREEN is ON, the
screen is restored without pausing for a keystroke.
See also EXEC.
EXIT
End RBcomm. Will prompt you whether or not to hang up if you are
still connected to another system.
FDELETE "filespec"
delete the file(s) named by filespec (which may include wildcards).
Note that there is no confirmation requested, so use this command
with care!!!
See also FILES.
FILES "filespec"
display a three-up list of the files matching the filespec. This
uses the file pager described above.
See also FDELETE.
FORCE_CLEANUP keyname
execute the following line(s), then execute the macro bound to
"keyname" regardless of how the commands are exited (i.e. normally,
ABORT, or <Esc>). FORCE_CLEANUPs may be nested, in which case
the innermost one is the only one to execute unless the cleanup
code executes an ABORT itself (then execution gets passed to the one
enclosing it, etc.). If no cleanup is needed and the FORCE_CLEANUP
is merely being used to prevent a complete abort on Esc, the pseudo-
key Null may be used. Null is guaranteed to perform no action and
return immediately.
GOTO_KEY keyname
continue execution with the specified macro (if bound). Never returns
to the current macro. If the key is not bound (i.e. GOTO_KEY Null),
execution resumes at the point from which the current macro was
CALLed, effectively producing a return from a nested macro.
See also CALL, PUSHKEY.
HANGUP
hang up. Executes macro bound to "CleanUp" before actually hanging
up if carrier detect is active. After hanging up, the default macro
file is reloaded (thus cancelling any remaining WHENs and DELAYEDs).
See also HANGUP_ONLY.
HANGUP_ONLY
hang up, but do not execute the "CleanUp" macro or reload macro files.
See also HANGUP.
HELP
pop up the help screen. If you currently have the macro file FOO
loaded, RBcomm first attempts to read the file FOO.HLP in the RBcomm
directory. If it is unable to do so, it then attempts to read
RBCOMM.HLP.
IDLE
go into idle mode, sending a blank followed by a backspace every 2
minutes. Press Esc to end idle mode.
Both the interval and the sequence sent by idle mode may be configured
with RBCONFIG.
IF SUCCESS|FAILED|CONNECTED|OFFLINE|DV|NOT DV
IF SUCCESS and IF FAILED conditionally execute a command based on the
completion status of an immediately preceding EXEC, SHELL, SEND,
SENDFILE, RECEIVE, RECEIVEFILE, or WAITFOR. The following line (or
lines if a MULTI) is executed only if that prior command was
successful in the case of IF SUCCESS, or if it failed in the case of
IF FAILED.
IF CONNECTED executes the following command if carrier detect is
asserted, while IF OFFLINE executes the following command if
carrier detect is deasserted.
IF DV executes the following command if RBcomm has detected that it
is running under DESQview, while IF NOT DV executes the following
command only if RBcomm is not running under DESQview.
For example, if you want to execute a program only after failing to
see a particular string, you would use
MULTI
WAITFOR 10 "don't run program"
IF FAILED
EXEC "!someprog args"
END
See also ABORT_UNTIL, EXEC, SHELL, SEND, RECEIVE, WAITFOR, UNTIL.
KFLUSH
empty the keyboard buffer (including RBcomm's key stack).
See also AWAITKEY.
LEARN
start learning a keyboard macro
See also UI_MENU.
LISTDIAL "numbers"
dial the specified numbers from the dialing directory repeatedly until
a connection is established with one of the numbers. If the empty
string is specified, the user will be prompted for the numbers to dial.
See also DIAL, MDIAL.
LOAD_MACRO "file"
load the specified macro file from the RBcomm directory. If an empty
filename is given, the user will be prompted for a name, which
defaults to the name of the currently loaded macro file. The current
macro (if any) and any that it had interrupted are aborted. However,
if the interruption occurred during a command of extended duration
such as a WAITFOR, that command will complete normally before the
macro is aborted.
See also SAVE_MACRO, UI_MENU.
LOG "filename" "message"
append the specified message to the named file. Both the filename
and the message may contain variable expansions as described under
EXEC. If the filename is (or expands to) the empty string "", the
expanded message is appended to the current log file (if any).
See also OPEN_LOG.
LOWER_DTR
requests that DTR remain dropped after the next HANGUP or HANGUP_ONLY
command. The best place to put this command is in your CleanUp macro.
MDIAL "number" ONCE|ATTACK
dial the specified phone number as if it had been entered as the
manual number for the dialing directory display.
See also DIAL, LISTDIAL.
MESSAGE row col msg
Display the specified message starting at the given row and column on
the screen. If either row or column is 255, use the current row or
column. Does not change the current cursor position, unlike the
DISPLAY command. As with DISPLAY, the characters ^A through ^F
specify special actions.
See also DISPLAY.
MESSAGEBOX msg
if running under TopView or DESQview, a window with the given message
will pop up for three seconds. This command is ignored otherwise.
The message is limited to 40 characters, anything beyond that is
ignored.
See also NOTIFY, CANCEL_NOTIFY.
MULTI
the following lines, up to but not including a line starting with END,
are assigned to the specified key. The macros assigned to the key
may not total more than 253 bytes, and the macro compiler will
complain if they do.
The format of the following lines is the same as for a regular macro,
except that you do not specify a keyname. For example, to make
shift-F2 switch terminal emulation to VT52, use
+F2 MULTI
PUSHKEY 13 0
PUSHKEY 'V' 0
PARAM_MENU
END
Note: you may use { and } on separate lines as synonyms for MULTI
and END.
NOTIFY msg
if running under TopView or DESQview, and RBcomm determines that it is
in the background, a window with the given message will pop up for
three seconds. This command is ignored otherwise.
The message is limited to 40 characters, anything beyond that is
ignored.
See also CANCEL_NOTIFY, MESSAGEBOX.
OPEN_LOG "file"
if logging is on, the current log file will be closed. Then, the
specified log file will be opened (if no name is given, a prompt is
popped up). The same variable expansions which are valid for
the EXEC command are applied to the filename which is given (or
entered by the user).
For example, to allow the environment variable RBLOG to specify the
base name of the log file, use
OPEN_LOG "%VRBLOG%.LOG"
See also EXEC, CLOSE_LOG, TOGGLE_LOG, RECEIVE.
PACECHAR 'c'
set the pace character for the TYPE command to 'c'. RBcomm waits
up to three seconds for the pace character when TYPEing a file to
the remote system. RBcomm will not wait if the pace character is
ASCII 0 (^@).
See also TYPE.
PARAM_MENU
pop up the "Set Parameters" menu
PASSWORD
send the password defined in the dialing directory. Does not send
a carriage return or any other terminating sequence.
See also TEXT, TYPE.
PASTE
send the contents of the cut buffer to the remote system.
See also CUT.
PAUSE num-ticks
halt execution for num-ticks/18 seconds. Useful mainly in conjunction
with the MULTI command (see above).
PUSHKEY key scan
or
PUSHKEY keyname
put the specified key/scancode pair onto RBcomm's internal keyboard
stack, where the last pushed pair will be the next keystroke read
by RBcomm. The stack is currently eight keystrokes in size, and any
PUSHKEY executed while the stack is full will simply be ignored.
"keyname" may be the name of any keystroke recognized by the macro
compiler.
Useful mainly in conjunction with the MULTI command (see above).
RECEIVE 'type'
start receiving a file with the specified protocol
0 prompt for protocol
'A' ASCII (capture to file--equivalent to OPEN_LOG "")
'X' Xmodem with parameters
'K' Xmodem-K with parameters
'Y' Ymodem
'^Y' Ymodem with parameters
'G' Ymodem-G
'^G' Ymodem-G with parameters
'Z' Zmodem
'^Z' Zmodem with parameters
See also IF, OPEN_LOG, SEND, TYPE.
RECEIVEFILE 'type' "parameters"
start receiving using the specified protocol (which may be any of the
ones listed for RECEIVE except 0 or 'A'), passing the specified
parameters to the file transfer module. Unlike RECEIVE, this command
will not pop up any messages unless it is unable to load the file
transfer module; in case of an error, the completion status is set
to FAILED.
See also RECEIVE, SENDFILE.
REPEAT times
repeat the command on the next line (or lines if a MULTI) the specified
number of times.
RFLUSH
clear any characters which may still be in the serial port receive
buffer.
See also KFLUSH.
SAVE_MACRO "file"
save the current macros to the specified file, located in the RBcomm
directory.
See also LOAD_MACRO, UI_MENU.
SAVE_SCREEN ON|OFF
determine whether or not to save the current screen while executing
external programs (other than file transfer). The state of this
flag slightly modifies the behavior of EXEC, EXECN, and SHELL.
See also EXEC, EXECN, SHELL.
SCROLLBACK
bring up the scrollback pager.
SELECT_SCREEN num
select a new screen to be the visible and active screen. If "num" is
PROMPT, displays a menu of the available screens.
SEND 'type'
prepare to send a file with the specified protocol
0 prompt for protocol
'A' ASCII
'X' Xmodem
'K' Xmodem-K
'Y' Ymodem
'G' Ymodem-G
'Z' Zmodem
'R' reduced-speed (medium) Zmodem
'S' slow Zmodem
control character versions of any of the above ('^X', '^Y', etc) will
delete the file(s) corresponding to the first filespec after sending.
See also IF, SENDFILE, RECEIVE, TYPE.
SENDFILE 'type' "file"
send the specified file with the given protocol, which may be any of
the ones listed for SEND except 0 or 'A'. Unlike SEND, this command
will not pop up any messages unless it is unable to load the file
transfer module; in case of an error, the completion status is set
to FAILED.
See also RECEIVEFILE, SEND.
SHELL
shell to DOS. If SAVE_SCREEN is ON, the original screen will be
restored when you exit from the subshell.
See also EXEC, IF.
TEST EXISTS "filespec"
determine whether any files matching the filespec exist. Sets the
status to SUCCESS if at least one exists, FAILED if none. The status
may be checked with IF or UNTIL commands.
See also TEST WHEN, IF.
TEST WHEN "str"
determine whether a WHEN with the specified search string is currently
active. Sets the status to SUCCESS if at least one exists, FAILED if
there are no WHENs with the specified string. The status may be
checked with IF or UNTIL commands.
See also IF, WHEN, TEST EXISTS.
TEXT "msg"
send the specified characters out the comm port. "msg" is limited to
253 characters.
TOGGLE_ECHO
toggle the state of local echoing
See also ECHO.
TOGGLE_LOG
if logging is currently on, turns off logging received data to file
if logging is off, pops up a prompt for the name of the capture file
See also OPEN_LOG, CLOSE_LOG.
TOGGLE_VERBOSE
toggle the state of verbose mode (see Alt-Y)
See also VERBOSE.
TRANSLATE_BS ON|OFF
TRANSLATE_BS ON turns on backspace/delete swapping, TRANSLATE_BS OFF
turns it off.
TYPE "file"
send the specified file to the remote system as a stream of ASCII
characters. Pauses at the end of each line and waits for the pace
character to be echoed (will continue after three seconds even if
the echo is not seen). Equivalent to
SEND 'A'
if no filename is given.
See also PACECHAR, SEND.
UI_MENU
pop up the load/save macro menu
See also LEARN, LOAD_MACRO, SAVE_MACRO.
UNTIL SUCCESS|FAILED|CONNECTED|OFFLINE
repeatedly executes the following line (or lines if a MULTI) until
the status of the last action is either success for UNTIL SUCCESS
or failure for UNTIL FAILED. UNTIL CONNECTED repeatedly executes
the following command until carrier detect becomes active, while
UNTIL OFFLINE repeats until carrier detect drops.
See also ABORT_UNTIL, IF.
VERBOSE ON|OFF
VERBOSE ON turns on verbose mode, VERBOSE OFF turns off verbose mode.
(see Alt-Y)
See also TOGGLE_VERBOSE.
VIEW "filename"
display the specified file one screenfull at a time. Pops up a prompt
if the null filename is given.
Pressing the space bar displays the next screen, Escape exits the
file view.
WAITFOR timeout "wait-string"
wait up to timeout seconds for the specified string of characters to
arrive over the comm port. Useful mainly in conjunction with the
MULTI command (see below).
You may test whether the string was actually received by following
the WAITFOR with IF SUCCESS or IF FAILED (unlike versions prior to
3.11, a failed WAITFOR does not abort the MULTI it is a part of).
See also IF.
WHEN iterations "when-string"
execute the command on the following line (or lines if it is a MULTI)
whenever the "when-string" is encountered in the data stream coming
from the remote system. After the string has been encountered
"iterations" times, the WHEN is automatically canceled (if iterations
is zero, the WHEN must be explicitly canceled with ENDWHEN).
You may have up to six WHENs active at any time (eight if you cancel
the autodownload [see ENDWHEN above]). All WHENs are canceled on
hanging up or dialing a number, and autodownload is re-enabled.
WHENs are tested in the order in which they were executed, so multiple
WHENs with the same when-string will trigger in the order in which
they were asserted.
This can be an extremely powerful command. For example, you can
implement another autodownloading (or uploading!) protocol simply by
adding
WHEN 0 "start-string"
EXEC "xfer-program parms"
to the AUTO or OnLoad macro. On CompuServe, you can make Ymodem
autodownloading by adding
WHEN 0 "initiate YMODEM receive"
RECEIVE 'Y'
to the OnLoad macro.
The built-in Zmodem autodownload corresponds to
WHEN 0 "**^XB00"
RECEIVE 'Z'
while Zmodem auto-upload can be added with
WHEN 0 "**^XB01"
SEND 'Z'
The standard Puma autodownload is equivalent to the lines
WHEN 0 "^X^H^XPuma^X^H^X"
RECEIVE 'P'
[thanks to Matthew Thomas for publishing his autodownload string!].
See also DELAYED, ENDWHEN.
WINDOW row col width height
limit the terminal emulator to a portion of the full screen.
WINDOW 0 0 255 255 will restore use of the full screen regardless of
the screen size.
-----------
Time Limits
-----------
The maximal time intervals which may be specified for various commands are:
255 ticks (~14 seconds) PAUSE
255 seconds (4.25 minutes) WAITFOR
18 hours (64800 seconds) DELAYED
-----------------------------------------------------------------------------
Writing your own Help Files
---------------------------
Help files are plain ASCII files with the exception that several control
characters are used to change character attributes within a line (each
line starts with the default attributes).
^A (A)lternate foreground and background colors, thus turning
reverse video on or off
^B toggle the (B)old bit
^D reset to (D)efault attributes
^E switch to underlined color as defined by RBCONFIG
^F toggle (F)lashing (blink bit)
-----------------------------------------------------------------------------
Terminal Emulation
------------------
RBcomm supports three terminal emulations. ANSI provides standard ANSI
escape sequences plus most VT102 and many VT200 escape sequences. BBS is
identical to ANSI except that clearing the screen with Esc-[-J or Esc-[-2-J
also homes the cursor, character set switching is disabled, and two of
RBcomm's private commands are replaced by the AVATAR level 0 command set.
Finally, VT52 replaces many of the Esc-letter sequences in ANSI with the
actions a VT52 or H19 would perform. In addition, in all of these modes,
RBcomm has its own, much more compact command set.
------------------
Control Characters
------------------
^A UnixWindows command character (see below for sequences)
^B move cursor right one position
^C move cursor down a line
^D move cursor left one position, does not wrap to previous line
^E send the answerback string to the remote system
^F special sequences (see below)
^G sound bell, or flash screen if visible bell enabled
^H move cursor left one position, wraps to previous line
^I move to next tab stop
^J move cursor down a line, scrolling screen when at bottom
^K insert a blank line
^L clear screen and home cursor
^M move cursor to start of line
^N "shift out"--switch to G1 character set (VT100)
^O "shift in"--switch to G0 character set (VT100)
^P clear rest of line (Note: if AVATAR is in cooked mode, ^P is the
"cook" character, causing the next character to have its high three
bits cleared; two consecutive ^Ps will be needed to give the
clear-line command)
^R clear rest of screen
^T change character attribute to underlined
^U clear underlined attribute
^V (BBS) start of an AVATAR command (see below)
(other) change to reverse video
^W cancel reverse video
^X insert a blank at the cursor's position, push rest of line right
^Y (BBS) repeat the following character the number of times specified by
the second character after the ^Y
(other) delete character at cursor position, rest of line shifts left
^Z delete line cursor is on
^[ escape sequence (see below)
^\ turn on insert mode
^] turn off insert mode
^^ move cursor up a line
^_ the following two characters (less 32) specify the new cursor
column and row. i.e. ^_-blank-blank homes the cursor.
----------------
Escape Sequences
----------------
Esc-blank-F turn off eight-bit control characters
Esc-blank-G turn on eight-bit control characters. When eight-bit control
characters are enabled, many of the characters from 80h through
9Fh are equivalent to Esc-<char-40h>.
Esc-( (VT100) next character ('0', '1', '2', 'A', or 'B') sets G0 character
set
Esc-) (VT100) next character ('0', '1', '2', 'A', or 'B') sets G1 character
set
Esc-# (VT100) next character sets character size
only '8' implemented -- fill screen with 'E's for alignment display
Esc-7 save cursor
Esc-8 restore cursor
Esc-< set terminal emulation to ANSI
Esc-= set keypad application mode (if allowed to change NumLock by RBCONFIG)
Esc-> set keypad numeric mode (if allowed to change NumLock by RBCONFIG)
Esc-@ turn on insert mode
Esc-A move cursor up
Esc-B move cursor down
Esc-C move cursor right
Esc-D (ANSI) "index"--move cursor down, scroll if at bottom
(VT52) move cursor left
Esc-E (ANSI) move to start of next line, scroll if at bottom
(VT52) clear screen
Esc-F (ANSI) not implemented
(VT52) select graphics character set
Esc-G (ANSI) not implemented
(VT52) select text character set
Esc-H (ANSI) set horizontal tab at current position
(VT52) home cursor
Esc-I (ANSI) horizontal tab
(VT52) reverse linefeed, scrolls down if already on top line
Esc-J (ANSI) not implemented
(VT52) clear to end of screen
Esc-K (ANSI) not implemented
(VT52) clear to end of line
Esc-L (ANSI) not implemented
(VT52) insert a new line at cursor
Esc-M (ANSI) "reverse index"--cursor up, reverse scroll if at top
(VT52) delete cursor line
Esc-N (ANSI) not implemented
(VT52) delete char at cursor, rest of line shifts left
Esc-O (ANSI) not implemented
(VT52) turn off insert mode
Esc-Y move cursor, next two characters are row + 32, column + 32
Esc-Z request identification
(ANSI) RBcomm returns the string "rbcommN.NNx" where N.NN is the
version number and "x" is a single byte identifying implemented
capabilities
bit 0: multiple screens available if set
bit 1: file transfer implemented (always set)
bit 6: always set (makes character printable)
bit 7: always clear
remaining bits reserved (zero)
(VT52) RBcomm returns the string Esc-/-Z, indicating a VT100 emulating
a VT52.
Esc-[ ANSI sequence, see below
Esc-] Operating System Command. The following characters through an Esc-\
sequence (maximum 80 characters) are skipped, as this command has
no effect.
Esc-^ ANSI Privacy Message. The following characters through an Esc-\
sequence (maximum 80 characters) are accumulated. If running under
DESQview, the first 40 are displayed in the notification window;
otherwise, the accumulated characters are discarded.
Esc-_ Application Program Command. The following characters through an
Esc-\ sequence (maximum 80 characters) are skipped, as this command
has no effect.
Esc-c reset to initial state
Esc-j save cursor position (Heath H19)
Esc-k restore cursor position (Heath H19)
Esc-l erase line (Heath H19)
Esc-p turn on bold characters
Esc-q turn off bold characters
Esc-v turn on line wrap (Heath H19)
Esc-w turn off line wrap (Heath H19)
Esc-z reset terminal emulation (Heath H19)
--------------
ANSI Sequences
--------------
All of the sequences listed here consist of Esc-[ followed by zero or more
numbers separated by semicolons followed by the command letter. Therefore,
only the command letter will be listed. X1, X2, etc refer to the specified
numeric argument, and usually are followed by a default value in
parentheses. All cursor positioning commands number rows and columns
starting at 1.
blank extended ANSI sequence (see below)
$ extended ANSI sequence (see below)
@ insert X1 (1) blanks, shifting rest of line to the right
A move cursor up X1 (1) lines
B move cursor down X1 (1) lines
C move cursor right X1 (1) positions
D move cursor left X1 (1) positions
E move cursor down X1 (1) lines, scroll if at bottom
F move cursor up X1 (1) lines, scroll if at top
G move cursor to position X1 (1) in current line
H move cursor to row X1 (1), column X2 (1)
I move to X1st (1) following horizontal tab position
J case X1 (*): 0 clear from cursor to end of screen
1 clear from start of screen to cursor
2 clear screen
* default is 0 for ANSI and VT52, 2 for ANSI-BBS
K case X1 (0): 0 clear from cursor to end of line
1 clear from start of line to cursor
2 clear line
L insert X1 (1) lines at cursor
M delete X1 (1) lines at cursor
P delete X1 (1) characters at cursor, rest of line shifts left
S scroll up X1 (1) lines
T scroll down X1 (1) lines
U switch to screen X1 (1) screens later, wrapping back to screen 0
if X1 preceded by an equal sign, switch to specified screen
V switch to screen X1 (1) screens prior, wrapping to last screen
X erase X1 (1) characters starting at cursor position, cursor stays put
Z move cursor to X1st (1) preceding horizontal tab position
` move cursor to position X1 (1) in current line
a move cursor X1 (0) positions from current position in line
c device attribute report
responds by sending Esc-[-?-6-c (VT102)
d move cursor to line X1
e move cursor X1 (0) lines from current line
f move cursor to row X1 (1), column X2 (1)
g case X1 (0): 0 clear horizontal tab at current position
3 clear all horizontal tab stops
'>' clear all horizontal tab stops, then set tabs every
N positions (i.e. Esc-[->-5-g sets tabs every five
columns)
h select mode
case X1 (0): ?2 set emulation to ANSI
?3 select 132-column mode (if enabled by RBCONFIG)
4 turn on insert mode
?5 turn on inverted video
?6 turn on scrolling-region-relative cursor positioning
(origin mode)
?7 turn on wrap mode
12 turn on local echo
20 turn on newline mode (send CRLF when CR pressed)
?25 turn cursor on (make visible)
i [media copy--not yet implemented]
l reset mode
case X1 (0): ?2 set emulation to VT52
?3 select 80-column mode
4 turn off insert mode
?5 turn off inverted video
?6 set top of scrolling region to topmost line, bottom
to bottom of screen, and turn off relative cursor
positioning (absolute cursor positioning)
?7 turn off wrap mode
12 turn off local echo
20 turn off newline mode (send only CR when CR pressed)
?25 turn off cursor (make invisible)
Note: may not work on all systems or in all video
modes
m select graphic rendition
for each Xn in order,
0 reset attributes to white on black, turn off reverse
video
1 set bold
4 set underlined
5 set blinking
7 set reverse video
8 set invisible (black on black)
21 turn off bold
22 turn off bold
24 turn off underlined
25 turn off blinking
27 turn off reverse video
30 set foreground color
-
37
40 set background color
-
47
Note: Esc-[-m is equivalent to Esc-[-0-m
n device status report
case X1 (0): 5 report terminal status
always sends Esc-[-0-n (terminal OK) to remote
6 report cursor position
sends string Esc-[-row-;-col-R to remote system
15 printer status
sends Esc-[-?-1-3-n (no printer) if no printer defined
Esc-[-?-1-0-n if printer is ready
Esc-[-?-1-1-n if printer is not ready
[currently always sends ?13n]
25 report User Definable Key status
always sends Esc-[-?-21-n (UDK's locked)
26 report keyboard dialect
always sends Esc-[-?-27-;-1-n (US ASCII)
r set scrolling region to rows X1 (1) through X2 (lines-on-screen)
s save cursor (may not be nested)
u restore cursor
x request terminal parameters (VT100)
case X1 (0): 0 sends back string indicating bits, parity, speed
1 sends back string indicating bits, parity, speed
the string sent is
Esc-[-<id>-;-<parity>-;-<bits>-;-<tspd>-;-<rspd>-;1;0x
where <id> is 2 if X1 was 0 and 3 if X1 was 1
<parity> is 1 for none, 2 for space, 3 for mark, 4 for odd,
and 5 for even
<bits> is 1 for 8, 2 for 7, 3 for 6, and 4 for 5 data bits
<tspd> and <rspd> are the transmit and receive speeds:
16 -> 110 bps
32 -> 150 bps
48 -> 300 bps
56 -> 600 bps
64 -> 1200 bps
88 -> 2400 bps
104 -> 4800 bps
112 -> 9600 bps
120 -> 19200 bps
128 -> 38400 bps
136 -> 57600 bps
z reset terminal emulation (Heath H19)
-----------------------
Extended ANSI sequences
-----------------------
If the command character for an ANSI sequence is a blank, the NEXT character
specifies the actual operation.
@ scroll left X1 (1) columns
A scroll right X1 (1) columns
If the command character for an ANSI sequence is a dollar sign, the NEXT
character specifies the actual operation. These are VT2xx extensions.
p ANSI mode control state request
always returns CSI X1 ; 0 $ y (unknown mode)
u terminal state request
always returns DCS 1 $ ST (no state information returned)
---------------------
UnixWindows sequences
---------------------
When RBcomm receives a ^A, the following character specifies the actual
command. If UnixWindows is enabled, a ^A introduces a UnixWindows command
at ANY time, even in the middle of another command; when disabled, ^A is a
normal command sequence introducer. This distinction is necessary because
both AVATAR and RBcomm private commands may include ^A within the sequence.
The UnixWindows commands are encoded as follows:
+---+---+---+---+---+---+---+---+
| 0 |dir| function | parameter |
+---+---+---+---+---+---+---+---+
where "dir" is 0 for commands being sent to RBcomm from the remote system
and 1 for commands sent by RBcomm. RBcomm currently supports the following
functions: [Note: this is not yet enough to successfully run UnixWin]
0 NEWW [not yet implemented]
1 KILLW [not yet implemented]
2 SELIN The parameter of this function specifies which "window" will
display characters received from the serial port. UW windows
are numbered from 1 to 7 and mapped to RBcomm screens 0 through
6. UW window 0 does not exist; if function 2 is invoked with
parameter 0, the command is ignored.
3 SELOUT This command is never sent by the remote host, and is thus
ignored
4 WINOPT [not yet implemented]
5 META If the parameter is 0, set the high bit of the next received
character before processing it. If the next character is a ^A
UnixWindows command character, this command will apply to the
next non-UW character (or the control character produced by
function 6 below)
If the parameter is one of the following, act as if the specified
character had been received; otherwise, ignore the command.
parameter 1 = char 129
parameter 2 = char 145
parameter 3 = char 147
6 CTRL if the parameter is one of the following, act as if the specified
control character had been received; otherwise, ignore the command.
If function 5 was received immediately prior to this command, the
high bit will be set.
1 ^A
2 ^Q
3 ^S
7 MAINT the parameter specifies one of a number of maintenance functions:
0 ENTRY sent by UW server on startup. RBcomm enables the
UnixWindows protocol on receiving this command.
2 ASKPCL remote system requests the start of protocol negotiation.
RBcomm responds with CANPCL 1 (the most basic protocol).
3 CANPCL remote system specifies a protocol it is capable of
supporting in the following byte (1Fh is added to the
protocol number to make it printable). If protocol 1
specified, RBcomm responds with SETPCL 1, otherwise it
responds with CANPCL 1.
4 SETPCL remote system specifies a protocol which both ends are
to use. The protocol is sent in the next byte, with 1Fh
added to make it printable. As RBcomm only supports
protocol 1, this function is currently ignored.
7 EXIT sent by UW server on shutdown. RBcomm disables the
UnixWindows protocol on receiving this command.
------------------------
Special RBcomm sequences
------------------------
When RBcomm receives a ^F, the following character specifies the actual
command.
^x display the IBM PC screen character corresponding to the control
character
0 turn off visual bell, ^G will beep
1 turn on visual bell, ^G will flash the screen, but internally
generated beeps still sound
2 flash the screen
3 beep even if visual bell turned on
4 fill area. Identical to AVATAR ^V^M (see below) but does not cancel
insert mode.
5 repeat character. Identical to AVATAR ^Y (see above)
6 repeat pattern. Identical to AVATAR ^V^Y (see below)
: disable the UnixWindows protocol
; enable the UnixWindows protocol
< set terminal emulation to VT102/ANSI. Does not affect any other
settings
= set terminal emulation to ANSI-BBS. Does not affect any other
settings.
> set terminal emulation to VT52. Does not affect any other settings.
? query terminal emulation type. Sends back <127><type> where type is
'A' for VT102/ANSI, 'B' for ANSI-BBS, or 'V' for VT52. The type
is converted to lower case if the UnixWindows protocol is enabled.
@ send identification (see Esc-Z)
A [obsolete--this command no longer does anything]
B if next character is '0' through '8' switch to the specified
screen, provided that memory was allocated for it at startup.
Sends a response of 127-<digit>-<status> to the remote system,
where the digit is the screen number from the ^FB command, and
status is 'Y' if the screen exists or 'N' if it doesn't. It is
the remote system's responsibility to redraw the screen if the
response is 'N'.
C if next character is '0' through '8' and the specified screen was
allocated at startup, clear that screen to blanks.
------------------------
AVATAR command sequences
------------------------
^V^A set screen attribute to low seven bits of following character
^V^B set blink
^V^C move cursor up a line
^V^D move cursor down a line
^V^E move cursor left one space
^V^F move cursor right one space
^V^G clear from cursor to end of line
^V^H<r><c> move cursor to row <r> and column <c>, where the upper left corner
is 1,1
^V^I turn on insert mode until next AVATAR command (except ^Y and ^V^Y)
^V^J scroll area up. Next five characters specify number of lines to
scroll, top margin, left margin, bottom margin, and right margin (all
margins are based on 1,1 being the upper left corner of the screen)
^V^K scroll area down. Next five characters are as for ^V^J
^V^L clear area. Next three characters specify screen attribute for cleared
area, number of lines less one, and number of columns less one. The
blink bit of the attribute is ignored, and the current display attribute
is set to the attribute of the cleared area. If the requested area
extends beyond the current window limits, it will be truncated to fit.
^V^M fill area. Next four characters specify screen attribute for filled
area, character to fill with, number of lines less one, and number of
columns less one. The current display attribute is set to the filled
attribute with blinking turned off. If the requested area extends
beyond the current window limits, it will be truncated to fit.
^V^N delete character at cursor position, shifting the remainder of the
line.
The following commands (except for ^V^Y) are Level 1 extensions. They
are not fully implemented, and are not expected to be completely
correct, as the official specifications have just (1/20/91) been
published, and I have not had time to implement and test everything. In
cases where the official specs differ from the sketchy information I had
to work with, the behavior will be incorrect. Those commands marked
[not implemented] will merely be skipped without any further processing.
^V^O turn clockwise mode on [not implemented]
^V^P not used
^V^Q query. Next character specifies the type of query
^Q get driver version info. Returns the string
"AVT0,rbcommN.NNc\r"
where N.NN is the RBcomm version and c is the capability byte
(see Esc-Z). This identifies RBcomm as complying with the AVATAR
level 0 specification, since level 1 support is still incomplete.
^V^R reset AVATAR [not implemented]
^V^S make a sound. The next three characters specify the note number,
octave, and duration in tenths of a second. The note is computed as
(note-'A')*2 + sharp
The current implementation does not queue any tones unless RBcomm is
running under DESQview (which can queue notes).
^V^T highlight character at cursor position. Next character specifies new
attribute.
^V^U highlight window. Next two characters specify the window handle and
new attribute.
^V^V define window. Next six characters specify the window handle, default
attribute, top margin, left margin, bottom margin, and right margin.
The default attribute is also the initial current attribute for the
new window. Note: window 0 can not be redefined.
^V^W switch to window. The next character specifies the handle of the
window to switch to.
^V^X flush input [not implemented]
^V^Y repeat pattern. The following character specifies the length of the
pattern to be repeated, followed by the pattern, and finally followed
by a single character indicating the number of times to repeat the
pattern. The pattern may contain command sequences, but is limited
to 80 characters (longer patterns are truncated to 80 characters).
^V^\ go to bed [not implemented]
^V^] wake up [not implemented]
^V^^ start vertical output [not implemented]
^V^_ start horizontal output [not implemented]
^V! poke char/attr to physical screen. The next four characters specify
the character and attribute to poke, and the row and column at which
to display that character and attribute.
^V" turn off line wrap
^V# wrap in zigzag mode [not implemented]
^V$ turn on line wrap
^V% reverse direction of linefeeds [not implemented]
^V& linefeeds move in normal direction [not implemented]
^V' set cursor type. The next character specifies the cursor's shape:
^A return to default (startup) cursor shape
^B make cursor invisible (does not work on all systems)
^C block cursor, covering entire character cell
otherwise, this command is ignored
^V( output in forward direction [not implemented]
^V) output in reverse direction [not implemented]
^V* system pause [not implemented] The next character specifies the
duration in tenths of a second.
^V+ insert a line
^V, insert a blank column at the current cursor position
^V- delete current line
^V. delete current column
^V/ set/reset static mode [not implemented] The next character specifies
whether or not the cursor should be advanced after outputting a
character to the screen.
^V0 highlight from cursor to end of line. The next character specifies
the new attribute to be applied to the rest of the line.
^V1 highlight from start of line to cursor. The next character specifies
the new attribute to be applied to the beginning of the line.
^V: keyboard mode. The next character specifies the mode. RBcomm
always returns ^V:0 (default mode), as it does not support this
command.
^V< scroll left. The next five characters specify the number of columns
to scroll, the top margin, left margin, bottom margin, and right
margin of the area to scroll.
^V= set parser mode. If the next character ANDed with 1Fh is ^R or ^C,
set the mode to raw or cooked, respectively. In cooked mode, the
character immediately following a ^P is ANDed with 1Fh, and the result
is treated as if it had arrived from the remote system instead of the
^P sequence.
^V> scroll right. The next five characters are as for ^V<
^V? peek at physical screen. The next two characters specify the row and
column at which to peek. RBcomm returns the poke command (see ^V!)
needed to restore the given character position to its current state.
-----------------------------------------------------------------------------
Acknowledgements
----------------
Thanks to Thomas Zerucha for his numerous comments and suggestions, many of
which have been implemented.
Thanks to Walter Cox for his comments and suggestions on v2.81, one of the
included keyboard bindings, and his patience in testing new versions.
Thanks to Mike Weaver for his comments and suggestions, some of which have
been implemented.
Thanks to Dave Doren for banging on the macro language and reporting bugs
and possible enhancements.
-----------------------------------------------------------------------------
Program History
---------------
v2.72 9/3/89 first public release
v2.81 10/4/89 second public release
v3.01 1/6/90 third public release
v3.12 4/28/90 fourth public release
v3.13 6/23/90 macro compiler bugfixes (e.g. IF CONNECTED/OFFLINE now work)
manual dial before directory dial now uses proper port
added IF DV and IF NOT DV commands
v3.14 6/30/90 added WINDOW, FORCE_CLEANUP, and HANGUP_ONLY commands
now able to reconnect without dropping carrier
added %V, %d, %t variable expansions
OPEN_LOG now expands variables
time limit on DELAYED raised to 18 hours
v3.15 7/7/90 added AT, LOG, and EXECN commands
internal changes
v3.16 7/14/90 made Puma autodownload present by default
added RBCDIAL environment variable
added REPEAT, CUT and PASTE macro commands
added OnAbort and Null pseudokeys
v3.20 7/22/90 internal changes
added TEST WHEN/TEST EXISTS/RFLUSH/GOTO_KEY commands
CUT now sets SUCCESS/FAILED
v3.21 7/29/90 fixed problems with GOTO_KEY
(fifth public release)
v3.22 9/9/90 switched from spawnlo() to spawnlpo(), adjusted Alt-G
added DISPLAY command, %N variable expansion
stubbed out AVATAR level 1 support
(unreleased)
v3.23 9/23/90 enhanced input line editor
fixed subtle bug in environment reading
added MDIAL command, %w variable expansion
continued adding AVATAR level 1 support
(unreleased)
v3.24 10/6/90 size optimizations
added PACECHAR command, SWAPDIR environment variable
(limited release)
v3.25 10/21/90 added more AVATAR level 1 functions, swap to EMS
fixed scrolling-region/cursor-move interaction bug
internal changes
(limited release)
v3.26 11/25/90 more internal changes and size optimizations
OPEN_LOG in OnLoad macro now works in all cases
(unreleased)
v3.27 12/9/90 added SELECT_SCREEN command on Alt-W
more UnixWindows functions
(limited release)
v3.28 12/21/90 added commandline options
some more AVATAR level 1 functions
new DVPWIDTH program for 132 column DESQview windows
(limited release)
v3.30 1/13/91 completely rewrote file browser, implemented scrollback
FILES command now uses new browser
added SCROLLBACK, SAVE_SCREEN commands
(limited beta release)
v3.31 2/3/91 bugfixes to scrollback
some more AVATAR level 1 functions
(sixth public release)